// Rust WebAssembly 加载器
export class RustGLTFLoader {
  constructor() {
    this.wasmModule = null
  }

  async init() {
    // 加载 Rust 编译的 WebAssembly 模块
    this.wasmModule = await import("./pkg/gltf_loader.js")
    await this.wasmModule.default()
  }

  async parseGLTF(gltfText, fileMap) {
    if (!this.wasmModule) {
      throw new Error("WASM module not initialized")
    }

    // 调用 Rust 函数解析 glTF
    const result = this.wasmModule.parse_gltf(gltfText, fileMap)
    return result
  }

  async parseGLB(arrayBuffer) {
    if (!this.wasmModule) {
      throw new Error("WASM module not initialized")
    }

    // 调用 Rust 函数解析 GLB
    const result = this.wasmModule.parse_glb(arrayBuffer)
    return result
  }
}
